package com.springboot.admin.mapper;

import com.springboot.admin.entity.CateDto;
import com.springboot.admin.entity.PagesDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AdminDao {
  // 查询所有数据
  public List<PagesDto> getAll(int pageNo);

  // 查询所有数据总条数
  public int getAllCount();

  // 后台管理，查当前用户所有数据
  public List<PagesDto> getAllByUsername(@Param("pageNo") int pageNo,@Param("username") String username);

  // 查询当前用户总条数
  public int getAllCountByUsername(@Param("username") String username);

  // 查询当前用户下某分类下数据
  public List<PagesDto> getListByCateByUserId(int cate, int page,String username);

  // 查询当前用户某分类下所有条数
  public int getCountByCateByUserId(int cate,String username);

  // 查询详情
  public PagesDto getDetail(@Param("id") int id);

  // 新增数据
  public boolean insertOne(PagesDto pagesDto);

  // 删除数据
  public boolean delOne(@Param("id") int id,@Param("username") String username);

  // 管理员删除任意一条数据
  public boolean delOneByadmin(@Param("id") int id);

  // 更新数据
  public boolean updateOne(PagesDto pagesDto);

  // 通过文章id查询创建人
  public String getCreateByid(int id);

  // 更新分类
  public boolean updateCate(CateDto cateDto);

  // 删除分类
  public boolean delCate(@Param("id") int id);

  // 新增分类
  public boolean insertCate(CateDto cateDto);

  // 更新阅读量，每次点击+1
  public void updateViews(PagesDto pagesDto);

  // 删除评论
  public boolean delComment(@Param("id") int id);

  // 查询所有关键词
  public List getKeyWords();

  // 保存关键字到数据库
  public void insertKeyWords(String  keyword);

  // 删除所有关键字
  public void deleteKeyWords();

  // 获取所有分类
  public List getCate();

  // 恢复分类
  public boolean revertCate(CateDto cateDto);

}

